package com.ishare.common.service.base;

/**
 * 邮箱服务
 *
 * @author 李嘉宾
 */
public interface EmailService {

    /**
     * 保存邮箱的验证码到缓存
     *
     * @param email     邮箱
     * @param cacheCode 验证码
     */
    void saveEmailCodeCache(String email, String cacheCode);

    /**
     * 从缓存中清除验证码
     * @param email 邮箱
     */
    void clearEmailCodeFromCache(String email);

    /**
     * 获取邮箱验证码过期时间
     * @param email 邮箱
     * @return 过期时间 可能为null
     */
    Long getEmailCodeTimeOutValue(String email);

    /**
     * 从缓存中获取邮箱验证码
     *
     * @param email 邮箱
     * @return 缓存验证码
     */
    String getEmailCodeFromCache(String email);

    /**
     * 发送邮箱验证码
     *
     * @param email     邮箱
     * @param cacheCode 验证码
     * @return 是否成功发送
     */
    boolean sendEmailCode(String email, String cacheCode);

}
